removed unnecessary self