Reduce number of state variables

- Reuse node calls
- Reuse abstractions
- Use let-bindings for inputs of node calls