public Type pop() {
        if (size < 0)
            throw new IndexOutOfBoundsException("No more items in the stack!");
        Type data = first.data;
        first = first.next;
        size--;
        return data;
    }