Fixed missing "not" in warning, oops!
Giant refactor