public static function createPreheatedReference(Smalldb $smalldb, AbstractMachine $machine, $properties)
	{
		$ref = new static($smalldb, $machine, null);
		$ref->properties_cache = $properties;
		$ref->state_cache = $properties['state'];

		$id_properties = $machine->describeId();
		if (count($id_properties) == 1) {
			$ref->id = $properties[$id_properties[0]];
		} else {
			$id = array();
			foreach ($id_properties as $k) {
				$id[] = $properties[$k];
			}
			$ref->id = $id;
		}

		return $ref;
	}