major refactoring: creating a file per class