– do more refactoring
– add a first concrete implementation (a “button” that does nothing but draw its background colour)
– change the interface (and implementation) of the abstract container class, use smart pointers instead of references so that we can actually use abstract classes
That basically says it all, that new button does not do much yet besides existing.