nicer map && optional useplum