Rename list members
Track position with lexer
Split into separate files