For a better typing, we'll need to correctly explain/document all the inheritance tree. See attached img.