partway through implementing subscriptions