Use virtual inheritance for the io and timer task