Part way through adding polymorphism, trying to have ItemManager handle all item types
more progress, should still work through to front-end