no more need for digest()