refactored the placement rules out into their own special module.