initial version of Si::map