Changed the exceptions being thrown to be more appropriate to the abstraction, r.  Removed runtime exceptions from method signatures for consistency.