Made interpreter modular and more OO and the code more lightweight