Для понимания проблемы поиска классов, возможно, лучше всего начать с известного и широко опубликованного подхода.