New methods. Make blocks optional (can be nil)

Some methods no longer return a BOOL value. If the operation cannot be
started if some information is missing the failure() block is called
instead of returning NO