start implementing set ; refactor iterable::map (wip)