We can make all the test pass by removing more of the mocks and using the real code.
Added some unit test infrasture for checking layers.