Major refactoring
Update CHANGELOG.md
Update docs