eliminating unnecessary self