factored out computer a bit. Made UI async