Monster refactor to re-arrange classes into sub-folders