use better check if we need to do anything