implement ALU, cheat a little (just a little)