Major change/Shifted all implementation to header files