use a virtual bottom site to avoid loop check on all bottom site, this can reduce the timing. But it ill introduce backwash problem.

Compilation:  PASSED
Style:        PASSED
Findbugs:     No potential bugs found.
API:          PASSED

Correctness:  21/24 tests passed
Memory:       8/8 tests passed
Timing:       9/9 tests passed