E2-P1 Refactorings
cleanup
refactor Gateway into separate InMemoryGateway derivatives.  E2P2 Review.