Major refactoring
Update changelog
Update docs