Now making use of PickingListenerComposite for picking pool; refactoring