fix bug: use "this" instead of "self"