Added Unit of work to abstact the DB layer