Окончательный вариант.
читать дальше