Anything else needs to be done before this can be merged? Datetime can be dealt with later on.

Is it ok to keep `IdGeneratorTrait` under Widget now that it's used for helper too?