update DV functions to fulfill the project specification