added toString, added copy