bytecode rewriting