Может, кто-то знает, в реальных проектах часто встречается такой запутанный код? Мне кажется, что классы Stopwatch и Runner как-то слишком сложно переплетаются и можно было бы сделать их более "разделенными", то есть вынести всю логику бегунов в класс Runner, а всю логику секундомера в класс Stopwatch. Или же тут все ок, просто у меня пока мало опыта, чтобы с легкостью прочитать этот код?