implementing user unit of work