add direction and snapshot