refactor begun