Arch Pattern Refactor

More closely follows design pattern.  Unit Tests work again after last
change.