Refactored to allow for easier addition of further controllers