some comment adds and concept check on functor