I think that this is more clear than to create some abstract classes for this extensions. Please refactor it if you think otherwise.