protected boolean initialize(
			ActivityInstance parent,
			int id,
			LocationEnvironment parentEnvironment,
			ActivityExecutor executor) {
		this.parent = parent;
		this.id = id;

		if (this.parent != null) {
			if (parentEnvironment == null)
				parentEnvironment = this.parent.getEnvironment();
		}

		int symbolCount = this.getActivity().getSymbolCount();

		if (symbolCount > 0) {
			this.environment = new LocationEnvironment(this.getActivity(), parentEnvironment, symbolCount);
			this.subState = SubState.ResolvingArguments;
			return true;
		}

		if (parentEnvironment == null) {
			this.environment = new LocationEnvironment(this.getActivity());
			return false;
		}

		this.noSymbols = true;
		this.environment = parentEnvironment;
		return false;
	}