add backend unlock mechanism