refactor add addtion