Added "this" and address balance.

Double-cast and typeName isn't used elsewhere. Is there a cleaner way of doing this? Maybe getUserDefinedTypeName and/or template?
Not an issue. Curious if there's a way to remove the need for dynamic cast and pointer use outside member's class.