add virtual to toString
ameliore try catch
merge