non-blocking template generate