adding virtuals