added proper credit to original author