Final PR

all our refactorings in one big commit!
We will publish out report on the other repo asap, so you can use that as an explanation of all the changes in here.