factor out distribution logic for a single property