finish almost all the documentation