added attrs caching