first commit, refactor