Raise exceptions instead of returning nils and doing other weird stuff (fix #23)