took out require self