implicate some virtrul functions