separating Future/Promise, fixing extension methods so they can work in LINQ comprehension correctly