Refactor controllers + moar tests