Refactored to make the start method idempotent