less strict type signature