completed refactor with concerns