Add documentation and test against self

Commit miss