@derekchiang 
I separate `create` and `set` in this way: `create` will fail if there is a existing file/directory; `set` will replace the existing file, but not directory. So do not comment it as `create`.