added toString suport for nicer repl printing