Right now layer is respected when a positionable is added to a View or a Positionable. But if the value of layer changes, the collection is not re-sorted.
The layer field should be made private and get and set accessors added. The set accessor should remove and re-add the positionable so it is re-sorted in its parent's collection.