A very big restructured. and also added new tokenizer