added case insensitivity, one-based indexes, and completed basic test