refactor reservation controller