updated pre-check logic