function [subclassFiles, subclassNames] = maniaSubclasses(ooDir,superclassName)
            subclassNames = {};
            subclassFiles = {};


            content = dir(ooDir);
            directories =  [content.isdir];
            fileList = {content(~directories).name};
            for k=1:numel(fileList)
                if ~isempty(strfind(fileList{k},'mania_')) && ~isempty(strfind(fileList{k},'.m')) && strfind(fileList{k},'.m') == length(fileList{k})-1
                    [ign, fName, ign2] = fileparts(fileList{k});
                    try
                        if ismember(superclassName,superclasses(fName))
                            tmp = eval(['?' fName]);
                            try
                            if ~tmp.Abstract
                                subclassFiles{length(subclassFiles)+1} = fName;
                                subclassNames{length(subclassNames)+1} = eval([fName '.name']);
                            end
                            catch exp2
                                if strcmp(exp2.identifier,'MATLAB:noSuchMethodOrField')
                                    if isempty(findobj([tmp.Methods{:}],'Abstract',true))
                                        subclassFiles{length(subclassFiles)+1} = fName;
                                        subclassNames{length(subclassNames)+1} = eval([fName '.name']);
                                    end
                                else
                                    rethrow(exp2)
                                end
                            end
                        end
                    catch exp
                        warning('newer Matlab version recommended!')
                    end
                end
            end