start to refactor out list work too