add map
compulsory logic