As a side note, I hope one of the benefits of splitting the GUI from the model in PCB will be that the code will be easier to understand, and thus easier for people to join the development effort.
However, I will opine that PCB is the type of program that really wants an object oriented programming language. Having every action know how to do every operation on every object type is just... wrong.
