separating code into header and cpp files
some more changes
removed unused Makefile
Adding gtests [ci skip]