virtual methods to enable testing scenarios

as discussed before