items presented from inventory are aware of their source (the inventory)
xcode userstate
better encapsulated the control of state into a protocol
merged in from github
merged gitignore