refactored item classes