why 'self' ?