made interact pure virtual