add asynchronous processing
finalize ui