add template param in SMapListener