переробив деякі функції