refactor waitlist controller