Splitting up the source files for better maintainability