initial commit
Merge https://github.com/lps-162/ssinger