Almost; I meant, you can have all of the properties here, like this.firstElement = ko.observable(); etc. which may make it jump around less. The reason (or at least what I was hoping for) was that knockout whould only do a very specific DOM manipulation of switching the src of the image component, instead of replacing all of the html (which I think it might do if you have a whole object that gets replace). But I'm not 100% sure that will actually happen, but anyway it's a clearer way of structuring the code (the FileViewModel shouldn't need to keep internal data of the ImageDiffViewModel)