some progress on the adaptation to optional