cleaning monitor software 173 at block 2110 the process invokes a contamination monitor sub routine fig2 b to determine the level of contamination on the surface at block 2120 the system determines whether or not the contamination level exceeds a specified threshold this threshold is a user changeable variable that is typically defined via a software control panel or through a user interface provided by the device 100 and stored in user preference memory 182 if the contamination level has not exceeded the defined threshold the process returns back to block 2110 to continue monitoring for contamination if the contamination threshold has been exceeded the process moves to block 2120 where it outputs an alert according to administrator defined policy the alert can take many forms including but not limited to visual indicator displayed on the visual output 140 e g display device or device configured to illuminate the touch surface of the device 100 an audible alert output on the speaker 150 a haptic alert output by the vibrator 135 or data that is sent via the communication interface 115 to external monitoring devices or software after issuing an alert the process moves to block 2130 fig2 c where it monitors for cleaning actions taken in block 2140 the system decides whether or not cleaning has been sufficient what is deemed sufficient by the cleaning monitor software 173 is defined by an administrator and stored as a user preference in the memory 182 if cleaning has not been sufficient the process returns to block 2130 to continue monitoring for cleaning activities if the cleaning is sufficient.