Refactored guestFactory