use emacs widgets instead