DEFINE CLASS cObject AS SESSION PROCEDURE RELEASE IF THIS.lRelease NODEFAULT RETURN .F. ENDIF THIS.CleanUp() RELEASE THIS ENDPROC PROCEDURE CleanUp WITH THIS IF .lRelease RETURN .F. ENDIF .ReleaseMember() ENDWITH ENDPROC PROCEDURE ReleaseMember ENDPROC ENDDEFINE DEFINE CLASS cBizObj AS cObject oValidator = .NULL. PROCEDURE INIT <B> THIS.oValidator = CREATEOBJECT("cValidatorObj", THIS)</B> && Object will stay in memory if THIS passed to cValidator ENDPROC PROCEDURE ReleaseMember THIS.oValidator.RELEASE() DODEFAULT() ENDPROC ENDDEFINE DEFINE CLASS cValidatorObj AS cObject oBusiness = .NULL. PROCEDURE INIT LPARAMETER toObj THIS.oBusiness = toObj ENDPROC PROCEDURE ReleaseMember THIS.oBusiness.RELEASE DODEFAULT() ENDPROC ENDDEFINE *---Main.prg loObj = CREATEOJECT("cBizObj") loObj.RELEASEIs it the right way?