- add an iterator interface
- remove size restriction

