feat(metadata): add basic metadata support