Problem: How can code be reused effectively?
Problem: In what ways other than inheritance can objects work together?
Runnable