minor speedup?
added __str__