fix dynamic if