functor:fixbug