add some documentation and a reference