improved circle pushing