Removed abstract base classes, created ipeerlist