arm lock is now a separate function