Merge stable refactor branch back into Master

We created this branch so I could continue refactoring some things and so that Abiy could continue building the quotes controller. We've since rebased from Abiy's changes and have this branch at a stable and working point.