lexer inheriting from a write stream
pulled bad position modifyers out of steps
better lexer