persistance layer abstraction added