What's the difference between "static" and "dynamic" predecessors