Could the return value just be added to the `accept` method without a performance hit instead of having the awkwardly named, almost exactly the same `accept2` method?