refactor subscriptionmodel