use "low probability" instead of "impossible"
optimise energy calculation
print errors