refactored booking_system