generic type used for DAO and Service layers