some structural changes
some further improvements
monday morning commit