Interesting changes. Decoupling some functions and other changes.