listen doesn't really receive an error, also, throwing errors is not nice :(