updated generic