finish "lock-n-run" code, working now but needs cleanup and full functional testing