Split main source file: use headers and separate source files