Final PR

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