How does this pushing work? And isn't this implementation only going to work one level of pushing?