Refactoring: more classes separated to their own files (cpp, h).