Changed outlining and order, trying to describe the architecture better.