advect is 2nd attempt from perfect code