refactoring to start at a simpler point