Factor out binary op