bufix
refactor s2
refactor s3
refactor s3