finish off refactoring everything into separate controllers