остальное будет в комментариях