Add support for Subclasses, Interfaces, Abstract Classes as POJOs

Why are you returning `null` on error?