Returning false on success and true on error is kind of counter-intuitive.