This cuts down on the code significantly and makes more sense, since we would not want to veil the API of any classes that want to use this.