If there's no draw function `run` should return after setup is done. It shouldn't block calling a draw function that isn't there.