Added support for optionals