Architectural refactoring

Moved providers and parser into their own folders. Split parser into tokenizer and parser
Added math provider