more refactoring; what used to work (including using constraint approximations) works fine. explicitly storing motions is not yet done