Model is now an interface.

Avoids protocol method cache thrashing.