refactor to start