std::vector marshaling, refactorings, WriteOnlyWhenChanged