working on functor function stuff
finished committing in main