Вторая версия: причёсано, прокомментировано, выкинуто лишнее.