Fixed #13

* All persist logic placed in a single private method