cleaned up code a bit, IS_RARE data watcher is now a byte instead of an int