add json encoding