adding decamlized types and caching options