Changed to RuntimeException to avoid having to specify "throws Exception" on every method in the call stack