diff --git a/src/js/slaveInteract.js b/src/js/slaveInteract.js
index 8989f10b62a3796263728b1fce3d5ff2433825f7..13d2d4399ed54fb0fc4cce297c4906e5d6f5a34d 100644
--- a/src/js/slaveInteract.js
+++ b/src/js/slaveInteract.js
@@ -92,14 +92,48 @@ App.UI.SlaveInteract.fucktoyPref = function(slave) {
 	return jQuery('#fucktoypref').empty().append(el);
 };
 
-App.UI.SlaveInteract.assignmentBlock = function(blockId) {
-	let res = App.UI.jobLinks.assignments(-1, undefined, () => {
-		return `<<replace "#assign">>$activeSlave.assignment<</replace>><<replace "#${blockId}">><<= App.UI.SlaveInteract.assignmentBlock("${blockId}")>><<= App.UI.SlaveInteract.fucktoyPref($activeSlave)>><</replace>>`;
-	});
-	if (State.variables.activeSlave.assignment !== "choose her own job") {
-		res += '&thinsp;|&thinsp; <<link "Stay on this assignment for another month">><<set $activeSlave.sentence += 4>><<replace "#assign">>$activeSlave.assignment($activeSlave.sentence weeks)<</replace>><</link>>';
+App.UI.SlaveInteract.assignmentBlock = function(blockId, slave) {
+	let el = document.createElement('div');
+	let title = document.createElement('div');
+	let separator = document.createTextNode(` | `);
+	title.append(`Assignment: `);
+
+	let assign = document.createElement('span');
+	assign.style.fontWeight = "bold";
+	if (slave.sentence) {
+		assign.textContent = `${slave.assignment} (${slave.sentence} weeks). `;
+	} else {
+		assign.textContent = `${slave.assignment}. `;
+	}
+	title.appendChild(assign);
+	if (V.assignmentRecords[slave.ID] && V.assignmentRecords[slave.ID] !== slave.assignment) {
+		title.append(`Previously: `);
+		assign = document.createElement('span');
+		assign.style.fontWeight = "bold";
+		assign.textContent = `${V.assignmentRecords[slave.ID]}`;
+		title.appendChild(assign);
+	}
+	el.appendChild(title);
+
+	let links = document.createElement('div');
+	links.className = "choices";
+	let res = App.UI.jobLinks.assignmentsFragment(V.slaveIndices[slave.ID], passage(), (slave, assignment) => { assignJob(slave, assignment); });
+	links.appendChild(res);
+
+	if (slave.assignment !== "choose her own job") {
+		links.append(separator);
+		links.appendChild(
+			App.UI.DOM.link(
+				`Stay on this assignment for another month`,
+				() => {
+					slave.sentence += 4,
+					App.UI.SlaveInteract.assignmentBlock(blockId, slave);
+				},
+			)
+		);
 	}
-	return res;
+	el.appendChild(links);
+	return jQuery(`#${blockId}`).empty().append(el);
 };
 
 App.UI.SlaveInteract.drugs = function(slave) {
diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw
index 5ee25d6a021d1132bb869602cdb59ea4f9601498..7db74c82bf2712844bf465c1e967238e2c3f2fb5 100644
--- a/src/uncategorized/slaveInteract.tw
+++ b/src/uncategorized/slaveInteract.tw
@@ -157,25 +157,14 @@
 
 	<div id="fucktoypref"></div>
 	<script>App.UI.SlaveInteract.fucktoyPref(V.activeSlave)</script>
-
-	Assignment:
-	<span id="assign" font-weight="bold">
-		<<if $activeSlave.sentence>>
-			$activeSlave.assignment ($activeSlave.sentence weeks).
-		<<else>>
-			$activeSlave.assignment.
-		<</if>>
-	</span>
-	<<if $assignmentRecords[$activeSlave.ID] && $assignmentRecords[$activeSlave.ID] != $activeSlave.assignment>>
-		Previously: <<print $assignmentRecords[$activeSlave.ID]>>
-	<</if>>
 	
-	<span id="assignmentLinks"><<= App.UI.SlaveInteract.assignmentBlock("assignmentLinks")>></span>
+	<span id="assignmentLinks"></span>
+	<script>App.UI.SlaveInteract.assignmentBlock("assignmentLinks", V.activeSlave)</script>
 
 	<<set _numFacilities = $brothel+$club+$dairy+$farmyard+$servantsQuarters+$masterSuite+$spa+$nursery+$clinic+$schoolroom+$cellblock+$arcade+$HGSuite>>
 
 	<<if _numFacilities > 0>>
-		<br>Transfer to: <<= App.UI.jobLinks.transfers(-1)>>
+		Transfer to: <<= App.UI.jobLinks.transfers(-1)>>
 	<</if>> /* closes _numFacilities */
 
 <</switch>> /* END CAN BE REASSIGNED */