finish version with synchronized