refactor. add each