Our system's main functionality is encapsulated in a service, let's call it X.
There are requests coming in to X-Manager service which deal with all validations and security issues, and activates X's functionality after everything passed.
We now want to extend X's functionality with a new module, let's call it Y, but without changing X's code too much, preferably without changing it at all.
Also, Y may be able to work on it's own some day (and not only extending X)
The main idea now in the team is to make X-Manager call Y with X instead of just calling X, so that Y will do it's thing and then Y Will call X's functionality instead of X-Manager.
I don't know why but this smells icky to me, I hope I managed to explain this well...
Is there any better way of doing this?