add header documentation
add errors documentation, a lot of them are untested, retrieved them from a repo, will test and clean