finish list refactor