First commit after refactoring, still some way to go.