add branching byte-code generation