@Override
	public void insertAt(T object, int index) throws DAIllegalArgumentException, DAIndexOutOfBoundsException
	{
		if(object == null)
		{
			throw new IllegalArgumentException();
		}
		else if((index >= 0) && (index <= size))
		{
			if(size >= array.length)
			{
				growArray();
			}
			
			//starts at the end and shifts everything up by 1
			System.arraycopy(array, index, array, index + 1, size - index);
			
			// sets the object at position index
			array[index] = object;
			
			size++;
		}
		else if((index < 0) || (index > size))
		{
			throw new IndexOutOfBoundsException();
		}
	}