push method imporvements