init commit
add some util
add main code
merge gitignore