refactoring the Controller, more small private methods