use holder pattern to improve list performance