add new listup algorithm