diff --git a/gui/shaviankb/shaviankb.tal b/gui/shaviankb/shaviankb.tal
index a2055c1..d236653 100644
--- a/gui/shaviankb/shaviankb.tal
+++ b/gui/shaviankb/shaviankb.tal
@@ -12,9 +12,9 @@
 |0100
 
 @on-reset ( -> )
-	#9c0f .System/r DEO2
-	#7c0f .System/g DEO2
-	#de0f .System/b DEO2
+	#ad0f .System/r DEO2
+	#ac0f .System/g DEO2
+	#ab0f .System/b DEO2
 	#0130 .Screen/width DEO2
 	#00d0 .Screen/height DEO2
 	;on-mouse .Mouse/vector DEO2
@@ -34,11 +34,6 @@
 (
 @|core )
 
-@<set-hover> ( id* -- )
-	DUP2 .hover LDZ2 EQU2 ?{ .hover STZ2
-		JMP2r }
-	POP2 JMP2r
-
 @get-mouse-key ( -- id* )
 	( x ) .Mouse/x DEI2 #0008 SUB2 #05 SFT2
 	( y ) .Mouse/y DEI2 #0008 SUB2 #0030 DIV2 #0009 MUL2 ADD2
@@ -46,6 +41,11 @@
 	( space ) DUP #1d SUB #04 GTH ?{ POP2 #001d }
 	JMP2r
 
+@<set-hover> ( id* -- )
+	DUP2 .hover LDZ2 EQU2 ?{ .hover STZ2
+		JMP2r }
+	POP2 JMP2r
+
 @<set-position> ( id* -- )
 	DUP2 #0009 DIV2 #0030 MUL2 #0008 ADD2 .Screen/y DEO2
 	DUP #1e NEQ ?{ POP2 #0007 }
@@ -53,6 +53,9 @@
 	#0009 DIV2k MUL2 SUB2 #0020 MUL2 #0008 ADD2 .Screen/x DEO2
 	JMP2r
 
+(
+@|drawing )
+
 @<draw-frame> ( x* y* w h sprite* -- )
 	.Screen/addr DEO2
 	,&h STR
@@ -93,7 +96,7 @@
 	#0006 MUL2 ;layout ADD2
 	( ) STH2k #0004 ADD2 LDA2
 	( ) STH2kr #0002 ADD2 LDA2
-	( ) STH2r LDA2 <draw-key>
+	( ) STH2r LDA2 ;btn-chr <draw-key>
 	JMP2r
 
 @<draw-glyph> ( addr* -- )
@@ -102,7 +105,7 @@
 	[ LIT2 0a -Screen/sprite ] DEO
 	JMP2r
 
-@<draw-key> ( a* b* c* -- )
+@<draw-key> ( a* b* c* frame* -- )
 	<draw-button>
 	.Screen/x DEI2k #0002 SUB2 ROT DEO2
 	.Screen/y DEI2k #0024 SUB2 ROT DEO2
@@ -127,8 +130,9 @@
 	#03ee <draw-times>
 	POP2 JMP2r
 
-@<draw-button> ( -- )
-	.Screen/x DEI2 .Screen/y DEI2 #0204 ;btn-chr <draw-frame>
+@<draw-button> ( frame* -- )
+	STH2
+	.Screen/x DEI2 .Screen/y DEI2 #0204 STH2r <draw-frame>
 	;fill-icn .Screen/addr DEO2
 	[ LIT2 12 -Screen/auto ] DEO
 	[ LIT2 03 -Screen/sprite ] DEOk DEOk DEOk DEO
@@ -163,6 +167,6 @@
 	&c ( -- )
 		#0f AND DUP #09 GTH #27 MUL ADD [ LIT "0 ] ADD #18 DEO
 		JMP2r
-	
+
 ~assets.tal