remaining: support for volumes, fix subclasses, __str__ method