Lots of changes to support unit testing.
Starting e2e testing, rest, soap, and area types are working.