Refactoring, added some new expressions, and of particular note added support for branching with fallthrough and loops now also decompose correctly