improved save, so it works (except it's mocked)
moved mocking into service