Use vector<shared_ptr<object>> and vector<unique_ptr<object>> instead of vector<obejct>;

Start writing archive file and archive folder.