first pass at subscription implementation