I wonder if the explanation is clear enough, that is can you understand why promotion/demotion works as it works. Comments?