I'm going to keep it for now. It adds an extra layer of abstraction to the model base, but that's fine for the time being. It can be removed fairly easily later.