Separate the code into more manageable files.

We can always compile them all into one once deploying to the server,
for faster load times.