add watching functionality, other minor enhancements