remove virtual here, override is enough