List refactor/abstractions