Just need to fix cross product. Added implementation of Functors