add fn param for keyboardEdit