better documentation
started 4th problem