uplink: use template instead of inline template