add shape/op/union and tests
utilize shape/op/union