public int get(int key) {
        if (!map.containsKey(key))
            return -1;

        Node current = map.get(key);
        current.prev.next = current.next;
        current.next.prev = current.prev;

        // move current to tail
        move_to_tail(current);
        return current.val;

    }