Splitted AbstractReplicatedRecordStore to multiple classes for better encapsulation of the different concerns