Use methods instead of direct field access to allow custom implementations of inventories