refactored the start method