Why are the dynamic_cast?  (This is an informational question for me because I don't understand why you did it this way.)  

Are you expecting null (or 0) returns at some point? 

I don't think we have dynamic casts anywhere else.