Chapter 3: contains metafunction