Wide range of changes. Adding new interfaces and an image class.