First cut at implementing the rest of SHAPE (SHAPE 1.0, at least).