protect_class is cryptic, but so far rendering is contingent on it.

The scheme you propose looks reasonable, and it anyway is not so hard to make some adjustments later.