refactor things to use a shouldSchedule method on BranchProperty