added methods for finer-grained synchronization