use extend
clean things up; i think this fixes a bug with provides
wip
fix tests
find bug test bug fix bug