Derive functor