Refactoring

See changes.md