done with s1.ml