first refactor successful