created proxy-methods in Item
replace dictionaries with polymorph
created behaviors with "Strategy" pattern