continuing refactor after failed merge