Change buildComposition() interface to be more appropriate