made emit virtual