Cleans up the new API.

Support existing (not block) callback argument or options hash, or both.