improve W motion
minor changes
improve w motion; add tests