add mapSingleton feature