switch to edge detection for button presses
immediate button response with threaded callbacks
better shared file handling