avoid redefines