move duplicated binding generator visitor to it's own class

Resolves #1082.