cleaned up digest interface