In ptr, removed static_cast, changed dynamic_cast to as, made ownptr automatically call derived destructor without needing base virtual destructor
Massively cleaned up interface design and put app functions in a global app class
Massively cleaned up interface design and put app functions in a global app class (2)