adding basic subscription functionality