Although it doesn't work perfectly yet, I'll merge it.

I still gives negative values sometimes, but it usually shows truth.