Для начала немного теории

А под катом…