extracted superclasses and interfaces from the request classes
added support for profile and profile.type