merge test with this.
Add shared_container_iterator.
Restructure code.