make unfinal so Mockito can spy on it