really simplify composeG