implementing tests and fakes