some basement concepts: user instance as callback arguments
cm.call implementation