Code cleanup: moved some implementation into .cpp files, made test for linker multiple definition errors