Taк есть же уже тема на миллион страниц, где все это давно расписано