new version of combine + unit test for it
this version does not use Obj.magic anymore