added optionals and fluent optional