Split out views
Organize core code with sensible headers