https://technicalsource9.medium.com/can-i-find-out-if-a-class-is-an-abstract-class-before-trying-to-instantiate-it-8a704575d295