can now throw an exception