Some preliminary work on refactoring the list type