Lots of refactoring
Lots of refactoring 2
Lots of refactoring 2
Lots of refactoring 3
Lots of refactoring 4