Optimize DataWatcher

Use primitive orientated collections, as well as more effective copies across collections.