use a callback to provide signing implementation