mark public functions with ;;;###autoload
use `locate-dominating-file` to traverse the directory tree