pass by ref? what happens to the object? copy it?
finalized ab v2.0 with success counter