Added classes for each type of token,
reimplemented Tokenizer