added model base interfaces and classes