Layer Supertype pattern