refactor oembed model