this gets called every time so needs this check