private synchronized void