add map functions