improved performance by creating a watcher on changes to array items rather than watching all properties