introduces flexible la backend switching
more using correct types for indices