self push