Refactored model to make tags more generic - can be assigned to different item types