add more functions to SoObject