Moving reservation logic to controller. End of first round of refactoring