How to deal with two instances of a class

class Course: 

nrofstudents = {}
counter = 0 

def __init__(self, coursename, studentlist = []):
    self.coursename = coursename
    self.studentlist = studentlist

def add_student(self, student):
    self.studentlist.append(student)
    print(self.coursename)
    print(self.studentlist)
    if (self.nrofstudents.get(self.coursename))== None:
        counter = 0
    else: 
        counter = self.nrofstudents.get(self.coursename)
    self.nrofstudents.update({self.coursename:counter+1}) 

    return self.studentlist

def drop_student(self, student):
    try:
        self.studentlist.remove(student)
        self.nrofstudents.update(nrofstudents[self.coursename]-1) 
    except: 
        print("ERROR, student not in course")

def __repr__(self):
    return "name {} course {}".format(self.studentlist, self.coursename)
    return nrofstudents

course1 = Course("Data Structures")
course2 = Course("Database Systems")

course1.add_student("Joel Waterman")
course1.add_student("Brian Smith")
course1.add_student("Ann Kennedy")

course2.add_student("Peter Jones")
course2.add_student("Steve Smith")

print(course2)

Hi. I made a class named "Course" to create multiple courses. Each course has a different studentlist. But when I want to print a studentlist for a course e.g "Database Systems" I get both all the students printed from both courses. How can I fix this issue?