Do some refactoring
Additional refactoring
More refactoring
A little more refactoring
Another round of refactoring
Finish refactor of core code
Merge branch 'feature/refactoring' into develop