add optional metadata keyword argument