added item based promotion class
added new classes to module loading
overriden the equality method
Implemented ItemPromotion#apply