cleanup/refactor
added validation for stop_time before start_time
simplified factory
cleaned up some unit tests