add check and generatr map