some documentation (work in progress)