added branching
added branch removal