better push state