Add model interface spec
Refactor model base class