refactored setup_reservation