Implementing mapi and iteri.
Merge PR #18 into `dev`