less dynamic casting, more inherited functions