Moved update_and_redraw to be a top-level member function for readability's sake, mostly. It already referenced 'self' anyway.