Hi, I am creating a game for mobile VR (1st person). It's pretty far along and I've tried to keep it loosely coupled but now I have an issue that I'm going around in circles with. I have a RaycastManager class that sends out a ray (from the player POV) and finds objects in the scene. It lets other classes know that it has found a new object (and a new normal) via C# events. The ReticleManager class listens to the RaycastManager. It will check the object found to see if it's an enemy (checks for three different tags as the enemy has moving parts with different tags). If so, it recolors and moves the reticle accordingly. In my GameManager class, I'm adding code to destroy the enemy when it's shot by the player. I need to check the object that has been shot. It needs the exact same lines of code that I used in the ReticleManager class. The conundrum: I do not like repeating code, ever. But... the RaycastManager's scope of responsibility shouldn't include checking the object found, only finding objects and letting others know. The ReticleManager certainly shouldn't be checking the object for the other classes. It's responsibility lies only with the reticle. Having the GameManager listen to the ReticleManager seems wrong. Where should I do my check for enemy? Should it be in it's own tiny little class? I'm trying to avoid creating tiny classes as they tend to multiply. Thoughts? Thanks!