Input: primitive shapes Output: a new shape