massive change and documentation