add support for custom metadata