refactor list methods