public void wrap(Calculation base, int id) {
		List<Node> sublist = new ArrayList<>();

		List<Node> exp = base.algorithm;

		int bracketCheck = 0;
		/* Cutting the thing.*/

		while (exp.size() > id) {
			Node node = exp.remove(id);
			sublist.add(node);

			if (node instanceof ControlNode) {
				if (((ControlNode) node).val == '(')
					bracketCheck++;
				if (((ControlNode) node).val == ')')
					bracketCheck--;
				if (bracketCheck < 0)
					throw new RuntimeException("Brackets wrong!");
			}

			if (bracketCheck == 0) {
				/* Removing brackets */
				sublist.remove(0);
				sublist.remove(sublist.size() - 1);

				nested = new Calculation(base);
				nested.algorithm = sublist;

				/* Adding trailing ';', if there's no. */
				Node last_node = nested.algorithm.get(nested.algorithm.size() - 1);
				if (!(last_node instanceof ControlNode && ((ControlNode) last_node).val == ';'))
					nested.algorithm.add(new ControlNode(";"));

				break;
			}
		}

		if (bracketCheck != 0)
			throw new RuntimeException("Brackets wrong!");

	}