Depend on emacs 24, due to lexical binding