Source file

Here i tried to centralized the creation of objects as well as providing the user a cleaner interface to build the instances. this way only build method is supposed to create the instance of the classes of type Item (factory pattern) and the user can build the object using the Builder class ( Builder pattern ).