added toString
Complete version