- generify sync process so it will be usable by other types