refactoring as per usual + timeslot error handling