F adv motion

Needs careful reviewing by everyone I think. Probably need documentation and annotation too. 
Should probably go at the top of the file