Multiple .cpp files, headers and improvements.