refactoring SupplierInterface