Enhancements

could use the new-style `ValueError as e` to lean towards py3k compatibility :smile:. I also find it tends to be more readable