continue to refactor