Cleaned up controllers, added input validation (to half)