Refactor display lists to use an explicit traversal