Fix an issue where composer wouldn’t generate autoloading files correctly.
Tidy up sample exercise config
Refactor and reorganise code to improve maintainability.