inconsistent use of 'self' and 'this'. Should just use one or the other, no need for a self variable.