more work on collections (wip)