maybe the [ ] operator should accept a size_t instead?