implemented is_dir