synchronized manually