     page_ids[curIndex] = page_ids[newIndex]
     page_ids[newIndex] = topicId
 
-    @_change(id, {settings: {page_ids, exercises_count_dynamic}})
+    @_changeSettings(id, {page_ids})
 
   moveExercise: (id, exercise, step) ->
-    plan = @_getPlan(id)
-    {page_ids, exercise_ids, exercises_count_dynamic} = plan.settings
-    exercise_ids = exercise_ids[..]
-
+    {exercise_ids} = @_getClonedSettings(id, 'exercise_ids')
     curIndex = exercise_ids?.indexOf(exercise.id)
     newIndex = curIndex + step
 

    exercise_ids[curIndex] = exercise_ids[newIndex]
    exercise_ids[newIndex] = exercise.id

    @_change(id, {settings: {page_ids, exercise_ids, exercises_count_dynamic}})


  _getStats: (id) ->
    @_stats[id]

    sortedTaskings[0] if sortedTaskings?.length

  updateTutorSelection: (id, direction) ->
    {exercises_count_dynamic} = @_getClonedSettings(id, 'exercises_count_dynamic')

    exercises_count_dynamic += direction

    exercises_count_dynamic = Math.min(TUTOR_SELECTIONS.max, exercises_count_dynamic)
    exercises_count_dynamic = Math.max(TUTOR_SELECTIONS.min, exercises_count_dynamic)
    @_changeSettings(id, {exercises_count_dynamic})

  updateTitle: (id, title) ->
    @_change(id, {title})
