add more listening functions and VIM :O