Updated to use NBT tags instead of custom data storage