simplify scope pool, and introduce keep*