think this is better locking