implemented more necessary logic for subscriptions, not tested but compiles