using singleton list to save memory

using singleton list to save memory