refactored bookings model