Add the lost runtime lock to Object.Key(). Rename Object.SetValue() to SetPrivate() and add GetPrivate(). Rename Object.GoValue() and Value.GoValue() to ToGo(). The GetPrivate() only for get private object the ToGo() only for conversion purpose.