This seems messy. a) why is there error suppression? Also, can this somehow be integrated with the event loop?