Added all types of pushing and fix pushing methods