Notes
This sample application draws three red squares. The problem with this
implementation is that if the requirements of the application change
(for example, the size or the color of the square), you have to
implement the changes at three different places. This is a trivial
example, but you can easily imagine the maintenance problem of code
duplication in a large scale application.