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.