Стоит прочесть вот это для начала.