before refactor list