edited up to How Should Metadata be Generated?