add metadata and create getter/setter methods