merge with s2util