Changes

I will leave comments in the Diff in regards to other parts I just disagree with.
Why do you need a boolean value?