почти все но надо проверить