Make it possible to change the `complex_object`

@josh:

What do you think about this approach? You can set `complex_object: nil`. It's pretty easy to support this, and we're not making any big commitments to a bigger API.