Я просто повешу эту простыню тут. Ссыль на автора