Implement last scenario; implement  mock; refactor