Switched to using exceptions for out of bounds or keyerror in collections