rewritten, using CL with a CLSource and Moo