move duplicated binding generator visitor to it's own class