... loObject = CREATEOBJECT(tcClassName, @tuParm1, @tuParm2, @tuParm3, @tuParm4) ENDCASE IF TYPE("loObject.Name") == "C" * ===> this is where the properties should be populated if I avoid the above call parameters loObject.SHOW() IF TYPE("loObject.uRetVal") # "U" RETURN loObject.uRetVal ENDIF ENDIF ...Probably this was a wrong question and I just got carried away with it. As I will have to manually call .SHOW() in case even if I do something as what you have hinted.