add additional fields and __repr__ functions