fix components. add cache.