there is no need for these methods to be public since index is really the public interface