pushing and branching first