model no longer depends on repository. use setIdea directly to change the idea