implement model