added type checking in Subscriber api, will generalize