Create var bindings for self function and function declarations.
Separate variable declaration and initialization.
Add while loops.