add tests for Optional