Initial commit after refactoring