Added some ideas
Refactored how scope-rewriting is handled and moved the reponsability completely into the scope object where it belongs. In theory different scopes can now define rewrites