fixed Optional<> to properly use TRAITS