new architecture 
- added tests
- added Compiler - main class