added shape with json support