extracting classes to its own cpp files, erasing unused includes pragmas