function u=construct(s,sizes_in)
	figure(fig(s)); set(gcf,'Name',name(s));
	h=s.opts.plotfn(zeros(1,1),s.opts.args{:});
	if ~isempty(s.opts.ylim), ylim(s.opts.ylim); end
	if ~isempty(s.opts.xlim), xlim(s.opts.xlim); end
	if isfield(s.opts,'ylabel'), ylabel(s.opts.ylabel); end
	if isfield(s.opts,'xlabel'), xlabel(s.opts.xlabel); end

	u=mkunit(s);
	if length(h)==1
		if autoflush(s), u.process =@proc_flush;
		else u.process=@proc_noflush; end
	else
		af=autoflush(s);
		u.process =@proc_mat;
	end

	u.sizes_out = {};
	u.dispose = @()delete(h);

	function proc_flush(x), set(h,'XData',1:length(x),'YData',x); drawnow; end
	function proc_noflush(x), set(h,'XData',1:length(x),'YData',x); end
	function proc_mat(x), 
		dom=1:size(x,1);
		for i=1:length(h)
			set(h(i),'XData',dom,'YData',x(:,i)); 
		end
		if af, drawnow; end
	end
end
