optimize push shape