added virtuals and additional tests