reduce struct bloat