modularized digest