Later on need to handle string/integer indexes as well (you end up doing some type checking and have duplicated cython code but its pretty fast)