This looks very similar to the implementation that you're overriding. Perhaps look at breaking things out into a function that can be shared.