lookup performance is log n