custom functions, key bindings, and emmet