Created Dao layer supertype to hold common code.
added javadoc