added toString and stuff