1. refine package namespace; 2. add interfaces for item producers(factories/builders)