Added support for optional