optimized article model by adding counter_cache to articles article_groups