generate metadata