eliminate unnecessary self