Complete through Phase VI, needs major refactoring