why not use ruby native json here?
fix some typo
refactor directory structure