fix optional: add in-place construction, emplace assignment