added toString overload & implicit casting