Generalize Rule model. Extract drawing CP.

The former is just for satifying my interests.