Cleaning.
Refactoring. Unfinished.