added possibly non-working if