add preliminary keyboard support