using clone instead of lodash. fixing merge and replay from constructor. fixing replay to increment version. fixing merge to check for method, but not hasOwnProperty