Base class needs to support multiple instances of subclasses