improve json parser