Made changes an array handled by parent object, child objects now pass changes up.
Added index to objects so updates in objects in arrays now also works.
Replaced saving with loop that updates mongodb with all changes in order.
Only thing still broken is array unshifting