try to handle more model situations