more more add restriction ifdef