metadata generation