they can stay in .cpp files, but the headers should be free of this for readability.
Biggest culprit is types.hpp