public void remove(int index) {
		if(first == null || last == null ) {
			return;
		}
		if( first == last) {
			if(index != 0) {
				return; // actually an error
			} else {
				first = null;
				last = null;
			}
		} else if( index == 0) {
			first = first.next;
		} else {
			Node n = getNode(index - 1);
			Node nextNode = n.next;
			n.next = nextNode.next;
			if( last == nextNode) {
				last = n;
			}
		}
		size--;
	}