A versatile neutron diffractometer