Added some of the features of Optional.