ADD tests and improve class documentation