Extract Item interface
Extract ItemFactory