initial order implementation
change iterator interfaces; use chain list for iteration
Merge branch 'orderd-map'