operations rewritten