Still needs exit handling and user objects