delete the abstract func