delete vectorized method (too slow)
implement context abstractor