Add an event loop, implement decks and other bells and whistles