Add adapter concept to make it more persistence library agnostic