refactoring: hsw to lexer