initial implementation of data deduplication