fix bug: miss 'this' to call function