add function map
refactory