Читайте статью на annimon.comВерсия на английском языке.