greatly improved errors, ops only take some number of integer arguments for now