refactor list, optimize