add pmap macro