         return content
     }()
 
+    /// Contains reference to types inheriting from any known class
     lazy var inheriting: [String: [Type]] = {
         var content = [String: [Type]]()
         self.classes.forEach { type in

        return content
    }()

    lazy var implementing: [String: [Type]] = {
        var content = [String: [Type]]()
        self.all.forEach { type in

        super.init()
    }

    /// Lists all known classes in the project
    lazy var classes: [Type] = {
        return self.types.filter { $0.isClass }
    }()

    /// lists all known types, excluding protocols
    lazy var all: [Type] = {
        return self.types.filter { !($0 is Protocol) }
    }()

    /// Lists all known protocols
    lazy var protocols: [Type] = {
        return self.types.filter { $0 is Protocol }
    }()

    /// Lists all known structs
    lazy var structs: [Type] = {
        return self.types.filter { $0 is Struct }
    }()

    /// Lists all known enums
    lazy var enums: [Type] = {
        return self.types.filter { $0 is Enum }
    }()

    /// Lists all encountered types, even if they are not known e.g. Apple or 3rd party frameworks
    lazy var based: [String: [Type]] = {
        var content = [String: [Type]]()
        self.all.forEach { type in
