add documentation (in progress)