vectorized versions are hopeless