adapted so version