literally 3.5μs per item, this is ridiculous (optimized from the original project with static loops and the secret foreach blocks)
O(n) time ?