Я кратко описал все тут: