make mtime optional, it doesnt exist for directories. add md5