Part4 incoming. Refactored structure.
more structure