Try and Use Dao Interfaces to simplify testing

Using interfaces for the Dao definitions so that I can substitute for a
mock when testing instead of concrete types