implemented model