implement SceneModel