rearchitected saving item parent and child items using promises