Needs virtual dtor.