Add note, program, and usage properties

Also add partial support for vessel nesting.
Add proper function indentation