return Def.StepsDisplayList {
	Name="StepsDisplayList";
	CurrentSongChangedMessageCommand=function(self)
		self:setfromgamestate();
		--[[
		local song = GAMESTATE:GetCurrentSong();
		if not song then
			self:setfromgamestate();
		end;
		--]]
	end;
	CursorP1 = Def.ActorFrame {
		InitCommand=cmd(x,44;y,10;player,PLAYER_1);
		PlayerJoinedMessageCommand=function(self, params)
			if params.Player == PLAYER_1 then
				self:visible(true);
				(cmd(zoom,0;bounceend,0.3;zoom,1))(self);
			end;
	 	end;
	 	PlayerUnjoinedMessageCommand=function(self, params)
			if params.Player == PLAYER_1 then
				self:visible(true);
				(cmd(bouncebegin,0.3;zoom,0))(self);
			end;
		end;
		LoadActor(THEME:GetPathG("DifficultyList cursor", "p1"))..{
			--InitCommand=cmd(x,74;y,8);
		};
	};
	CursorP2 = Def.ActorFrame {
		InitCommand=cmd(x,44;y,16;player,PLAYER_2);
		PlayerJoinedMessageCommand=function(self, params)
			if params.Player == PLAYER_2 then
				self:visible(true);
				(cmd(zoom,0;bounceend,0.3;zoom,1))(self);
			end;
		end;
		PlayerUnjoinedMessageCommand=function(self, params)
			if params.Player == PLAYER_2 then
				self:visible(true);
				(cmd(bouncebegin,0.3;zoom,0))(self);
			end;
		end;
		LoadActor(THEME:GetPathG("DifficultyList cursor", "p2"))..{
			--InitCommand=cmd(x,78;y,10);
		};
	};
	CursorP1Frame = Def.Actor{
		ChangeCommand=cmd(stoptweening;decelerate,0.125);
	};
	CursorP2Frame = Def.Actor{
		ChangeCommand=cmd(stoptweening;decelerate,0.125);
	};
};