code: public T removeHead() {
  		if( first == null )
  			throw new IllegalArgumentException("Empty list");
  
  		T ret = first.getObject();
  		Element<T> e = first;
  		available.push(first);
  
  		if( first.next != null ) {
  			first.next.previous = null;
  			first = first.next;
  		} else {
  			// there's only one element in the list
  			first = last = null;
  		}
  		e.clear();
  		size--;
  		return ret;
  	}
docs: Removes the first element from the list
  @return The object which was contained in the first element