rebasing and wip on #7