do i definitely need to reimplement the paintEvent() function.