Update documentation and add new functionality