inline ID creation and remove generate* functions