Refactoring pt1. See new Issues.