Move concat into hooks module
Use AST builders in each/with transforms
Switch attribute bindings to diffing strategy