set to pure virtual functions