Add copyright preamble.
Refactor ImageWidget to use BorderBounds.
Refactor widgets.