layered pattern using role metadata