changed from interface to class, changed to extends