explained pushing and pulling