Fixed a bug in UniqueID where used ids weren't actually traked. Changed how ids are stored in other classes so it makes slightly more sense. Changed UniqueID(int val) to explicit in order to prevent accidental conversions.