from is-a to has-a