refactor Instructions
add BranchInstruction
refactor branch instructions