Pushed with loads of revisions and beginning of threading work