implements branch