Input cleanup
 - added startListening() and stopListening() methods