Refactor.
Bump to 3.0.
Merge branch 'release/3.0' into develop