refactor with which