switched to new start_on_main_thread
better naming
implemented signal handling