porting SoObject