Generitize Scrollable and ScrollableElement.
Scrollable gets addElement.
ScrollableElement adds getSource as its intended to be used as a wrapper, though obviously it could return itself.
EditableList functions as the other half of Scrollable to add/remove from wrapped list or other structure, such as InventoryRules container.