Wouldn't it make more sense to make this abstract?