Source reformat
Source reformat
Add support for Optional return values
Update description
Add more unit tests for Optional support