maybe use `oj` instead? super fast for parsing