removed public virtual interface