adding virtual trackball stuff