Use the name var_name consistenly
Update TODO list
Add missing parenthesis
Add initial support for optional parameters