Adds simple imap

Only works on a single iterator.
Starts to covert to variadic imap