introduce allocation rules, etc