use self instead of instance variables