A loooot of changes and testing.