correct, and much better compilation of compose, no longer calling helper function