Begin refactoring ...
CopyFrom() is ok
Merge branch 'refactor' into develop