another acceleration rewrite