Use exceptions, clean up extra methods.