Refactor add method