add reservation logic