added dirname, basename, file.path function