Can we have is_file and is_dir at the same time?
Maybe we should use a ENUM for that. type = FILE | DIRECTORY