almost working, need to not change mode when set already