use vector instead of map for lexers, and some other things