more reasonable ALU