generate binary operators