less strict type constructor