collections work but are brittle. needs refinement and documentation