added shit fucking with functions