tighten subclassing