add subscription flexibility