add some vector math. refactor chromogeometry issues