overhaul Subscription.java