Split into several files.
Renamed for improved naming convention.