Split code into generate, select, system-version and sound for easy management.