First commit. Before refactoring.