finite difference update seems to be working more testing needed