tag :: composite over inheritance