Это ответ только на часть вопроса. Собственно, так