Major refactoring
4 files changed