public void put(int key, int value) {

		HashPrinter.tryPut(key, value);

		/** Index that moves through array slots */
		int runner = 0;

		int hash = (key % table.length);

		if (table[hash] == null) {

			table[hash] = new Node(key, value);

			HashPrinter.successfulInsertion(key, hash);

			size++;

		} else {
			/** Collision */
			Node entry = table[hash];

			while (entry != null && runner < table.length) {

				HashPrinter.collisionMessage(hash);

				runner++;
				hash = ((key + runner * runner) % table.length);
				entry = table[hash];

				HashPrinter.movingNextSlotByQuadratic(hash);

			}

			if (runner == table.length) {

				HashPrinter.arrayFull(key, value);

			} else {

				HashPrinter.successfulInsertion(key, hash);

				table[hash] = new Node(key, value);

				size++;

			}
		}

		if (size >= maxSize) {
			resize();
		}
	}