GrahamA: refer to interface instead of concrete class.