changed to use dao interface instead of impl