add basic element caching on component