unique_ptr使えばvirtualにする必要無いのでは?