adding in watch functionality, still pretty rough