change solve to pure virtual