Хорошая тема и статья по этому вопросу от @frimelle: