change: would be better to push a context on a first argument for the passed callback function, because if it is the instance method it usually need to get the self object.