implemented toString, need to test