Working, refactored to use controllers