`model` is a better name for the prototype than `implement`