added many new interfaces and documentation