unit tests coming along
unit tests more functor-ified
unit tests still slightly broken