Best refactoring. All Unit tests pass. Code clean up and a few new layout tests needed.