avoiding push operations