These problems look to me like the result of writing N implementations of X, rather than 1 common X shared by all the apps.