Вы не поверите, но это я текст диплома параллельно пишу; выпиливаю и рефакторю то, за что стыдно.