I like the term compose better than extend here