added  virtual to enable testing scenarios