The problem there was that the existing code replicated -exactly- the content of getTarget() with the exception of the return statement. So, i just replaced it with a getTarget() statement to avoid duplicated code. But indeed getTarget() doesn't just "get" the target: it also updates the content of the CameraTargetSystem.target field. I guess what I could do is to rename getTarget() to updateTarget() as you suggest and create a getTarget() method that is a simple getter for the target field?