Broke source into several files within the src directory.