realized I need static cast before generalized polymorphic functions