refactor addOne