bit stuck on the functor shiz