Made everything unimplemented throw an exception to make sure we never miss anything