add __repr__ and __str__