Updated macro guard, added some hash functions