only use an as_a<> if we need to access subclass fields