Duplicate key checking. Better exception throwing for sync failures. Fix for key name user resolution. Return updates after push. Allow uncommiting changes/reset. Remove final class declaration to allow mocking