redesigned lexer and changed some syntax stuff