update catmull-clark to use reducers