fix repr, add explicit .string() method
add docstrings