locks are awesome now, timeout implemented