Externalized all the drop rules to strategies, thus avoiding lambdas

also fixed a minor bug
Moved strategies to its own package