Added WatchableObject class, did some cleanup