Added implementation in the ItemSystem and rewritten some existing implementations. Also, added documentation.