Merge branch 'release/r1' into develop
complete revision, with unit test
Merge branch 'release/1.0.0'