Working demo and some improvements like error messages, void returns, try catch...