almost done with directional derivative