oh yeah the selector combinators should really be idempotent