add second callback support for teardown
docs
docs