added type-safe Id class template