refactor; propagate do identifier