DRY up item types and states

closes #7