Add keyboard support, callbacks and loop options