Documentation and many other changes