I see, functor style!