added move functions and tests
new function object
added new method persists