immutable descriptor base class