added Function interface, for map() method