Separate interface for thing which can have an effect applied to it from Surface (needs further revision - probably Surface should not implement this directly); effect types (effect should be split into separate API+SPI); accommodate layerwidget's behavior to existing behavior of RasterSurfaceImpl - the layer widget's bounds are always less than or equal to zero and dragging the image to the right/down transparently grows the backing image bounds; pixel grid is back