added doc-strings and an "equals" operator