This blog post is the story of one refactoring. We were building a CRM app responsible for collecting orders from e-commerce sites across the internet. An order can be in 8 different states for "new" to "delivered". We had 5 different roles such as "call operator" and "shipping manager". Imagine that the admin should see the full history of order state changes but the call operator should only see a log of calls. We had to display orders to each user role differently. We tried different solutions and one day we discovered cells: a library for views for Rails.