Closes #3, implemented support for 'with' keyword