call callback with ctx as 'this'