Cleaned up the DAO objects by refactoring almost everything into a
generic DAO parameterized class.