some refactor
split main into 2 submethods
have print buit-in redirect to stdout
Merge branch 'refactor' of https://github.com/Carreau/mochi into Carreau-refactor
Modify the code format
Merge branch 'Carreau-refactor'