more documentation (still wip)